In addition to utilizing a desktop computer, today's high technology workers often carry a personal digital assistant (“PDA”), a laptop computer, a wireless telephone and possibly other devices. In many cases, each of these devices is capable of performing personal information manager (“PIM”) functions in a manner similar to those performed by desktop computers. As a result, the PIM databases stored in these devices are typically synchronized with a database stored at a server computer. In this manner, the database stored in each of the devices can contain a user's current PIM data, such as electronic mail (“e-mail”) messages, contact information, calendar data, task lists, notes, and other information.
When a PIM record is modified independently on both the server computer and a device, such as a laptop computer, a conflict may arise when the device is synchronized with the server computer. The conflict arises because the contents of one or more records stored on the server computer differ from the contents of the corresponding records stored on the device. For instance, a user may utilize a desktop computer that is connected to a network continuously in conjunction with a laptop computer that is only periodically connected to the network for synchronization. In this scenario, the user may work on the laptop computer and be presented with a reminder for a meeting. The user may dismiss the reminder and continue to work offline from the server computer. Later, the user may see the same reminder again on the desktop computer and again dismiss the reminder. When the user subsequently synchronizes the laptop computer with the server computer, the server computer will detect that the item is in conflict. The conflict arises because changes were made to different versions of the record independently of one another. Therefore, the records stored on the server computer and the laptop computer may be different or may be changed in the same way in both places.
In many cases, when a synchronization conflict arises, a user is presented with a message indicating that a conflict has arisen. The user will also be asked to assist in the resolution of the conflict. This typically requires a user to review the conflicting records and to select one of the records as the correct record. This process can be confusing and time consuming for a user. Moreover, it can be especially frustrating for a user when a “spurious” conflict is generated as the result of duplicate edits on different versions of a record. For instance, this may occur when the same changes have been made to the server and laptop versions of the records. In such a situation, the records are not truly in conflict.
Although requiring a user to manually resolve conflicts can be annoying to a user and tend to decrease productivity, previous software solutions have been unable to meaningfully resolve conflicts without user intervention. One of the main reasons it has been difficult to resolve conflicts without user intervention is that changes to PIM records have typically been tracked only on a per record basis. For instance, in previous PIM client and server applications, it was only possible to detect that a record had been changed. It was not possible to detect the particular fields, or properties, of a record that had been modified. Accordingly, it has previously been difficult, if not impossible, to automatically resolve most types of synchronization conflicts.
It is with respect to these considerations and other that the various embodiments of the present invention have been made.